package gen

import "gitee.com/dreamwood/ez-go/maker"

func SellOrder() {
	doc := maker.CreateDoc("SellOrder", "销售订单", "erp")
	doc.Add("sn", "单据编号").IsString()
	doc.Add("title", "单据主题").IsString()

	doc.Add("buyer", "客户").IsJoinM2O("Buyer")
	doc.Add("buyerName", "客户名称").IsString() //如果是临时的客户只填名称

	doc.Add("taxType", "发票类型").IsJoinM2O("TaxType")
	doc.Add("payType", "付款方式").IsJoinM2O("PayType")
	doc.Add("payCashType", "结算方式").IsJoinM2O("PayCashType")
	doc.Add("deliverType", "交货方式").IsJoinM2O("DeliverType")
	doc.Add("deliverAt", "交货时间").IsTime()
	doc.Add("deliver", "交货地点").IsString()
	doc.Add("contactEmp", "业务员").IsJoinM2O("Emp")
	doc.Add("contact", "联系人").IsString()
	doc.Add("contactPhone", "联系电话").IsString()

	doc.Add("num", "数量").IsFloat()
	doc.Add("money", "金额").IsFloat()

	doc.Add("status", "状态").IsJoinM2O("SellOrderStatus")
	ApprovalData(doc)

	doc.Add("formAt", "制单时间").IsTime()
	doc.Add("formEmp", "制单人").IsJoinM2O("Emp")
	doc.Add("createEmp", "创建人").IsJoinM2O("Emp")

	doc.Add("note", "备注").IsString()

	//关联信息
	doc.Add("product", "产品").IsJoinO2M("SellOrderProduct", "id", "belongToId")
	doc.Generate()
}

func SellOrderProduct() {
	doc := maker.CreateDoc("SellOrderProduct", "销售订单产品明细", "erp")
	doc.Add("belongTo", "所属").IsJoinM2O("SellOrder")
	ComProductItem(doc)
	doc.Generate()
}

func SellOrderStatus() {
	doc := maker.CreateDoc("SellOrderStatus", "销售订单产状态", "erp")
	doc.Add("name", "名称").IsString()
	doc.LoadTree()
	doc.LoadStatus()
	doc.Generate()
}

func SellOrderPayment() {
	doc := maker.CreateDoc("SellOrderPayment", "销售订单付款", "erp")
	doc.Add("belongTo", "所属").IsJoinM2O("SellOrder")
	doc.Add("type", "付款类型").IsJoinM2O("SellOrderPayType")
	doc.Add("money", "支付金额").IsFloat()
	doc.Add("applyEmp", "申请人").IsJoinM2O("Emp")
	doc.Add("payAt", "支付时间").IsTime()
	doc.Add("payFeed", "支付凭据").IsAny("ss.M")
	doc.Add("payEmp", "付款人").IsJoinM2O("Emp")
	doc.Add("isPay", "是否付款").IsBool()
	doc.Add("isLock", "是否锁定").IsBool()
	doc.Generate()
}

func SellOrderPayType() {
	doc := maker.CreateDoc("SellOrderPayType", "销售付款类型", "erp")
	doc.Add("name", "付款类型").IsString()
	doc.Add("sort", "排序").IsInt()
	doc.Generate()
}
